package com.neighbor.neighborhooduser.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 用户帖子表
 * </p>
 *
 * @author song
 * @since 2025-09-22 09:13:04
 */
@Getter
@Setter
@TableName("posts")
public class Posts {

    /**
     * 帖子唯一ID
     */
    @TableId(value = "post_id", type = IdType.AUTO)
    private Integer postId;

    /**
     * 发布者ID
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 帖子标题
     */
    @TableField("title")
    private String title;

    /**
     * 帖子内容
     */
    @TableField("content")
    private String content;

    /**
     * 类型(1:热门,2:讨论,3:求助)
     */
    @TableField("type")
    private Byte type;

    /**
     * 图片URL列表(JSON格式)
     */
    @TableField("images")
    private String images;

    /**
     * 状态(1:已审核，2:未审核)
     */
    @TableField("status")
    private Byte status;

    /**
     * 对于求助帖子的状态：（1：解决 2：未解决）
     */
    @TableField("solve_status")
    private Byte solveStatus;

    /**
     * 浏览次数
     */
    @TableField("view_count")
    private Integer viewCount;

    /**
     * 回复数量
     */
    @TableField("reply_count")
    private Integer replyCount;

    /**
     * 点赞数量
     */
    @TableField("like_count")
    private Integer likeCount;

    /**
     * 收藏数量
     */
    @TableField("collect_count")
    private Integer collectCount;

    /**
     * 是否置顶(0:否,1:是)
     */
    @TableField("is_top")
    private Byte isTop;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
    @TableField("created_at")
    private Date createdAt;

    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:SS")
    @TableField("updated_at")
    private Date updatedAt;


    @TableField(exist = false)
    private Users user;

    @TableField(exist = false)
    private Boolean isLiked;

    @TableField(exist = false)
    private Boolean isCollected;

}
